// API Key配置脚本
// 使用方法：在浏览器控制台执行此脚本，然后调用setApiKey方法设置各模型的API Key

// 由于这是直接在浏览器控制台使用的脚本，我们假设aiModelConfig已经在全局可用
// 如果不在全局，请先在控制台执行: window.aiModelConfig = require('./src/utils/aiModelConfig').aiModelConfig

/**
 * 设置AI模型的API Key
 * @param {string} modelType 模型类型: 'deepseek-r1' | 'doubao' | 'tongyiqianwen' | 'chatgpt'
 * @param {string} apiKey API Key
 * @param {string} [apiBase] API Base URL (可选)
 * @param {boolean} [setAsDefault] 是否设为默认模型 (可选)
 */
function setApiKey(modelType, apiKey, apiBase = '', setAsDefault = false) {
  if (!window.aiModelConfig) {
    console.error('aiModelConfig未找到，请先确保正确导入');
    return false;
  }
  
  // 检查模型类型是否有效
  const validModels = ['deepseek-r1', 'doubao', 'tongyiqianwen', 'chatgpt'];
  if (!validModels.includes(modelType)) {
    console.error(`无效的模型类型: ${modelType}，请使用以下类型之一: ${validModels.join(', ')}`);
    return false;
  }
  
  // 保存模型配置
  const config = { apiKey };
  if (apiBase) {
    config.apiBase = apiBase;
  }
  
  window.aiModelConfig.saveModelConfig(modelType, config);
  
  // 如果设置为默认模型
  if (setAsDefault) {
    window.aiModelConfig.setDefaultModel(modelType);
  }
  
  console.log(`成功配置模型 ${modelType} 的API Key`);
  
  // 显示当前配置
  showCurrentConfig();
  
  return true;
}

/**
 * 显示当前所有模型的配置情况
 */
function showCurrentConfig() {
  if (!window.aiModelConfig) {
    console.error('aiModelConfig未找到');
    return;
  }
  
  const config = window.aiModelConfig.getConfig();
  console.log('当前AI模型配置:');
  console.log(`默认模型: ${config.defaultModel}`);
  console.log('模型配置详情:');
  
  Object.entries(config.models).forEach(([model, modelConfig]) => {
    const apiKeyStatus = modelConfig.apiKey ? '已配置' : '未配置';
    const isDefault = config.defaultModel === model ? ' (默认)' : '';
    console.log(`- ${model}${isDefault}: API Key ${apiKeyStatus}, API Base: ${modelConfig.apiBase}`);
  });
}

/**
 * 设置所有模型的API Key
 * @param {Object} keysMap 包含各模型API Key的对象
 */
function setAllApiKeys(keysMap) {
  if (!window.aiModelConfig) {
    console.error('aiModelConfig未找到');
    return;
  }
  
  Object.entries(keysMap).forEach(([model, apiKey]) => {
    setApiKey(model, apiKey);
  });
}

/**
 * 重置所有配置到默认值
 */
function resetAllConfigs() {
  if (window.aiModelConfig) {
    window.aiModelConfig.resetConfig();
    console.log('已重置所有AI模型配置到默认值');
    showCurrentConfig();
  }
}

// 示例用法
function showExamples() {
  console.log('\nAPI Key配置脚本使用示例:');
  console.log('1. 设置单个模型的API Key:');
  console.log("   setApiKey('deepseek-r1', 'your-deepseek-api-key')");
  console.log('2. 设置模型的API Key和API Base，并设为默认:');
  console.log("   setApiKey('doubao', 'your-doubao-api-key', 'https://api.doubao.com', true)");
  console.log('3. 查看当前配置:');
  console.log('   showCurrentConfig()');
  console.log('4. 重置所有配置:');
  console.log('   resetAllConfigs()');
}

// 将函数添加到全局，方便在控制台调用
window.setApiKey = setApiKey;
window.showCurrentConfig = showCurrentConfig;
window.setAllApiKeys = setAllApiKeys;
window.resetAllConfigs = resetAllConfigs;
window.showExamples = showExamples;

// 显示欢迎信息和示例
console.log('\n=== AI模型API Key配置工具 ===');
console.log('请使用以下函数配置各模型的API Key:');
showExamples();